/**
 * 自动生成的代码，请勿修改
 * 生成时间：<%= new Date().toLocaleString() %>
 */
<%# 头部引用，当前接口、类型需要引用的其他的接口、类型、枚举等 -%>
<%_ if (apifoxRefs.length > 0) { -%>
import type { <%= apifoxRefs[0].ref %> } from './<%= apifoxRefs[0].ref %>';
<%_ } -%>
<%_ if (refs.length > 0) { -%>
  <%_ refs.forEach(function(ref){ -%>
    <%_ if (ref.ref !== name) { -%>
import type { <%= ref.ref %> } from './<%= ref.ref %>';
    <%_ } -%>
  <%_ }) -%>
<%_ } -%>

<%# 如果不是对象和枚举类型，直接生成type类型即可 -%>
<%_ if (!['OBJECT', 'ENUM'].includes(interfaceType)) { -%>
export type <%= name %> = <%- displayType %>;
<%_ } -%>
<%# 如果是枚举类型，遍历生成枚举类型 -%>
<%_ if (interfaceType === 'ENUM') { -%>
export enum <%= name %> {
  <%_ config.enums.forEach(function({ enumKey, enumValue }){ -%>
  <%- enumKey %> = <%- enumValue %>,
  <%_ }) -%>
}
<%_ } -%>
<%# 如果是对象类型，遍历生成对象类型 -%>
<%_ if (interfaceType === 'OBJECT') { -%>
export interface <%= name %><% if (apifoxProps.length > 0) { %> extends <%= apifoxRefs[0].ref %><% } %> {<% if (isEmpty) { %>}<% } %>
  <%_ Object.entries(config).forEach(function([key, value]){ -%>
    <%_ if (!apifoxProps.includes(key)) { -%>
      <%_ if (value.descriptions.length > 0) { -%>
  /**
        <%_ value.descriptions.forEach(function(description, index){ -%>
   * <% if (index === 0) { %>@description <% } %><%- description %>
        <%_ }) -%>
   */
      <%_ } -%>
  <%= key %><% if (!value.required) { %>?<% } %>: <%- value.displayType %>;
    <%_ } -%>
  <%_ }) -%>
<%_ if (!isEmpty) { -%>
}
<%_ } -%>
<%_ } -%>
